1. Field of the Invention
The present invention relates to communication systems, and more particularly, to a method and apparatus for selectively controlling the flow of data between plural network stations.
2. Description of the Related Art
Modern communication systems, such as computer networking systems or communication networks, provide constant transmission of data between end stations and/or intermediate stations such as routers and signal amplifiers. Computer networking systems, such as packet switched networks (e.g., Ethernet networks), often require transmission of data to a single end station or to multiple end stations within the network. The data originates from a user program, and is segmented into multiple data frames and subsequently transmitted in order to simplify processing and minimize the retransmission time required for error recovery. For example, in a conventional e-mail system, a user may desire to send the same e-mail message to four different users that are connected to the e-mail system. Accordingly, the identical data would be directed to multiple end stations.
Packet switched computer networks typically employ a network switch that receives and forwards data frames to individual and/or multiple end stations. The switch makes forwarding decisions upon receipt of data frames based on information contained in a header of each data frame. For example, if a received data frame is to be transmitted to a number of end stations, the switch must make the forwarding decision to forward the data frame to the ports of the correct end stations.
Data frames must comply with certain transmission standards such as, for example, the Ethernet (IEEE 802.3) network standard, that allow transparent interpretation by various network systems. The network standard outlines the parameters and requirements (e.g., media type, data structures, etc.) that must be used to ensure prescribed levels of reliability and quality of service. During normal operation, a large quantity of data must be exchanged though a network. For various reasons, however, some of the data will not reach its destination. For example, computer networking protocols require that data be segmented into sub-units, such as data frames, that conform to prescribed specifications. The data frames are transmitted from a source station and reassembled by a destination station upon receipt of all the segments. Oftentimes, individual segments are lost or damaged during transit. This may be the result of line noise or other factors that function to corrupt the data. In order to anticipate and compensate for such occurrences, computer networks implement error correction protocols capable of requesting retransmission of individual data frames that have been lost or damaged in transit. When properly supported and implemented between two network stations, most transmission errors can be corrected.
When data frames are received by a network switch, they are forwarded by the network switch to a network station specified by a header contained in each data frame. Data frames received by the network stations must then be reassembled into the original data that was segmented by the source station. Prior to reassembly, a network station examines each data frame to ensure that no errors have occurred and that each data frame conforms to the standards specified by the protocol being used. During operation, the network switch and network station must also identify various properties of each data frame in order to provide efficient and reliable service.
One such property normally identified by the network switch is a xe2x80x9cruntxe2x80x9d status. As used herein, a data frame having a runt status (i.e., a runt data frame) is defined as a data frame that is less than a specified size. Oftentimes, data frames that are less than a specified size contain errors. The specified size may be determined and set in advance, or dynamically changed during normal operation of the network system. It is normally difficult to identify properties such as a runt status because the criteria that define a runt data frame are not standard parameters, and therefore can vary between and within a large network, such as a Wide Area Network (WAN), that includes multiple network switches. Furthermore, runt data frames do not necessarily contain any errors. For example, runt data frames may be identified in order to minimize operations that can only be performed on data frames that are at least equal to the specified size. In situations where properties such as a runt status are identifiable, a significant amount of logic and time is required to process each data frame.
For example, one approach to detecting the runt status of data frames received by a network switch employs specialized logic for each port supported by the network switch. Accordingly, each port must independently identify runt data frames. In addition, a direct path must be created between each port (i.e., the logic used to detect runt status) and the entity responsible for making decisions for the network switch based on the runt status. On network switches that are embodied in a single chip, the additional logic and data paths must be added at the expense of on-chip real estate.
Accordingly, a problem associated with communication systems, such as computer networks, is the difficulty encountered in detecting certain characteristic properties of data frames, such as a runt status. Another problem associated with communication systems is the cost associated with implementing circuitry to determine such characteristic properties.
There exists a need for an arrangement that is capable of efficiently identifying particular characteristics of data frames within a communication system such as a computer network. These and other needs are addressed by the present invention wherein the number of data transfers required to store a prescribed portion of a received data frame is examined in order to determine if the received data frame is a runt data frame.
In accordance with one aspect of the present invention, a method of detecting whether data frames received by a network switch are runt data frames comprises the steps: examining a stored value that indicates the number of data transfers required to store a prescribed portion of the received data frame in a memory area of the network switch; determining if the received data frame is a runt data frame based on the stored value; and generating a runt indication signal upon completion of transfer of the received data frame to the memory area, the runt indication signal specifying whether the received data frame is a runt data frame. The present method eliminates the need to incorporate complicated logic to detect runt data frames by examining a stored value which is normally used to track the number of data transfers to the memory area. The amount of time required to identify received data frames is also reduced because the additional processing normally required to identify which data frame is a runt data frame is minimized.
According to another aspect of the invention, an arrangement is provided for detecting runt data frames received by a network switch. The arrangement includes a plurality of queuing logics, a rules queue, and a runt status circuit. The plurality of queuing logics corresponding to the number of ports contained in the network switch. The queuing logics transfer received data frames to a memory area of the network switch and update a stored value that indicates the number of data transfers required to store a prescribed portion of a particular received data frame in the memory area. The rules queue examines the stored value and determines if the particular data frame is a runt data frame that is smaller than a threshold value. The runt status circuit detects when the particular data frame has been completely transferred to the memory area, and outputs a runt indication signal specifies whether or not the particular data frame is a runt data frame. The present arrangement efficiently uses components already contained in the network switch to detect which data frames are runt data frames, and outputs a signal that specifies the status of the data frame. Accordingly, the amount of logic and time required to detect runt data frames is reduced.
Additional advantages and novel features of the present invention will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following, or may be learned by practice of the invention. The advantages of the invention may be realized and attained by means of the instrumentalities and combinations particularly pointed out in the appended claims.